# 文件操作
# 打开文件
# open(name,mode),name 为文件名,也可以是路径,mode 访问模式,只读,写入,追加
# open("D:\\tmp\\aaa.txt", mode='r')

# r,rb,r+,rb+,
# w,wb,w+,wb+,
# a,ab,a+,ab+

f = open("aaa.txt", mode='w')
# write,mode= 为w,a合适一些
f.write("这是一个寂寞的天\n")
f.write("下着有些伤心的雨")
# 文件不存在,r模式报错
print("==============read=============")
f = open("aaa.txt", mode='r')
# 读 可以传入长度,不传读取全部
str2 = f.read(10)
print(str2)
str2 = f.read()
print(str2)

print("==============readline 数字是行读取多少个=============")
# read
f = open("aaa.txt", mode='r')
str = f.readline()
print(str)

print("==============readlines,数字是行数=============")
f = open("aaa.txt", mode='r')
str = f.readlines(1)
print(str)

print("==============seek =============")
f = open("aaa.txt", mode='r')
# 偏移量,起始位置
# f.seek(1, 1)
str = f.read(10)
print(str)
# 关闭
f.close()
print("==============⽂件备份 =============")
# . 接收⽤户输⼊的⽂件名
# 2. 规划备份⽂件名
# 3. 备份⽂件写⼊数据
# old_name = input("请输入你要备份的文件名")
old_name = 'aaa.txt'

# 2.1 提取⽬标⽂件后缀
# 2.2 组织备份的⽂件名， xx[备份]后缀
point_index = old_name.rfind('.')
prefix = old_name[:point_index]
sufix = old_name[point_index + 1:]

# 3. 备份⽂件写⼊数据
# 3.1 打开源⽂件 和 备份⽂件
# 3.2 将源⽂件数据写⼊备份⽂件
# 3.3 关闭⽂件

f = open(old_name, mode='rb')
f_new = open(f'{prefix}[备份].{sufix}', mode='wb')

# 循环读取
while True:

    str = f.read(1024)
    if len(str) == 0:
        break
    f_new.write(str)

# 关闭
f.close()
f_new.close()
print("============== 文件和文件夹的操作 通过os模块=============")
import os

# os 模块功能 os.方法名()
# 文件重命名
# os.renames("aaa.txt",'bbb.txt')
# 删除⽂件
# os.remove("bbb.txt")
# 创建文件夹
# os.mkdir('aaa')
# 删除文件夹
# os.rmdir('ccc')
# 获取当前目录
print(os.getcwd())
# 改变默认⽬录
# os.chdir('ddd')

# 获取目录列表
list_file = os.listdir("E:\study_python\第一阶段 python核心编程\\1-1 python基础语法v5.0\zhz\\new_project")
print(list_file)
print("==============os 应用案例 =============")
# 需求：批量修改⽂件名，既可添加指定字符串，⼜能删除指定字符串。
# 步骤
# 1. 设置添加删除字符串的的标识
str = 'new'
# 2. 获取指定⽬录的所有⽂件
mkdir = "E:\study_python\第一阶段 python核心编程\\1-1 python基础语法v5.0\zhz\\new_project\\base\\aaa\\"
list_files = os.listdir(mkdir)

# 3. 将原有⽂件名添加/删除指定字符串，构造新名字
for name in list_files:
    # 4. os.rename()重命名
    os.rename(name, mkdir+str + name)
    pass

print("============== =============")
